package com.fanghaoran.view.user.bookFrame;

import com.fanghaoran.controller.WordController;
import com.fanghaoran.entity.Words;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.io.File;
import java.io.IOException;
import java.util.List;

/**
 * @Author: win11
 * @Date: 2023/03/18/21:06
 * @Description: 选择模式的图形化界面
 */
public class ModelFrame extends JFrame{
    /**
     * 模式选择的标志
     * model=1,代表音译汉模式
     * model=2,代表汉译英模式
     */
    public static int model=0;
    public static final int ENGLISH_TO_CHINESE=1;
    public static final int CHINESE_TO_ENGLISH=2;


    public static List<Words> words =null;
    public ModelFrame() throws Exception {
        //最外层界面frame的设置
        initFrame();
        //界面中的视图,控件等的设置
        initView();

        //设置可见
        this.setVisible(true);

    }

    private void initView() throws Exception {
        //垂直box存放选项
        Box vBox=Box.createVerticalBox();
        //调整布局位置,使其大致居中
        vBox.add(Box.createVerticalStrut(100));
        //音译汉模式按钮
        JButton eToC=new JButton("音译汉模式");
        eToC.add(Box.createVerticalStrut(50));
        //汉译英模式按钮
        JButton cToE=new JButton("汉译英模式");
        cToE.add(Box.createVerticalStrut(50));

        //按钮放到box中
        vBox.add(eToC);
        vBox.add(cToE);
        //box放到frame中
        this.add(vBox);

        //调用service层方法 获取单词数据
        words =(List<Words>)new WordController().getData().getMessage();

        //随机数实现随机单词的学习
        //给音译汉按钮添加点击事件
        eToC.addActionListener(e->{

                //点击完按钮后进入学习
                try {
                    //关闭当前页面
                    exit();
                    model=1;
                    //开启音译汉模式学习页面
                    new TestFrame(words.get(0));
                } catch (Exception exception) {
                    exception.printStackTrace();
                }

            }
        );
        cToE.addActionListener(e-> {
            //关闭当前页面
            exit();
            model=2;
            //开启汉译英学习页面
            try {
                new TestFrame2(words.get(0));
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        });
    }

    private void initFrame() throws IOException {
        //设置宽高
        this.setSize(400, 400);
        //设置居中
        this.setLocationRelativeTo(null);
        //设置标题
        this.setTitle("扇贝单词");
        //设置标题旁边的logo图标
        this.setIconImage(ImageIO.read(new File("src//image//logo.jpg")));
        //设置置顶
        this.setAlwaysOnTop(true);
        //设置关闭模式
        this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    }
    /**
     * 在点击事件重写方法中实现关闭当前页面的方法
     */
    private void exit(){
        this.dispose();
    }
}
